草庐IT

c++ - NULL == 指针

全部标签

c++ - CreateMutex 和 OpenMutex 返回 NULL

我正在编写一个具有共享内存的应用程序,并正在创建名称上带有适当"Local\"前缀的命名互斥体。但是,每次我调用CreateMutex函数来创建句柄时,我都会得到一个NULL返回值。我什至尝试在那之后调用OpenMutex并获得NULL返回。GetLastError()函数返回6,这意味着ERROR_INVALID_HANDLE。我相信这发生在第一次尝试在任何进程中创建这个命名互斥锁时。我在包含一些MFC组件之后包含了windows.h,并在应用程序的其他地方使用了CMutex;所以我不知道这是否是一个问题。我始终为前两个参数传递NULL和FALSE,并且我使用的是WindowsXP。

c - 未知类型名称 'uint32_t' , MinGW

我收到错误unknowntypename'uint32_t'并包含stdint.h。uint8_t不会产生错误,uint16_t也不会。我正在使用MinGW和以下make-lines:#BuildforWindowsunderMinGW#MINGWDBG=-DDEBUG-O0MINGWDBG=-DNDEBUG-Os#MINGWOPT=-W-Wall-mthreads-Wl,--subsystem,console$(MINGWDBG)-DHAVE_STDINTMINGWOPT=-W-Wall-mthreads-Wl,--subsystem,windows$(MINGWDBG)mingw:

c++ - 如何在 Windows 上编译 libevent2?

我正在尝试编译thislibevent2package到Windows,但目前我不能,因为配置脚本是一个shell脚本(/bin/sh;不能在Windows中运行)。有什么方法可以编译它或获得预编译包吗?我目前安装了MinGW、CMake和MSC++。编辑:我已经成功地使用nmakeMakefile.nmake编译了libevent2,但它没有生成任何Windows二进制文件/库。只有.lib。makefile如下——#WATCHOUT!Thismakefileisaworkinprogress.Itisprobablymissing#tonsofimportantthings.DON

c - 在 Wininet 中使用 SSL

有人可以举例说明如何将SSL与wininetAPI一起使用吗?这是我的代码,但没有成功......DWORDdwFlags=INTERNET_FLAG_SECURE|INTERNET_FLAG_IGNORE_CERT_CN_INVALID|SECURITY_FLAG_IGNORE_UNKNOWN_CA|INTERNET_FLAG_IGNORE_CERT_DATE_INVALID|INTERNET_FLAG_NO_AUTO_REDIRECT|INTERNET_FLAG_PRAGMA_NOCACHE|INTERNET_FLAG_NO_CACHE_WRITE;hOpen=InternetOp

c - 如何在 Windows 控制台中禁用 echo?

如何在Windows控制台C应用程序中禁用回显?我真的不想使用_getch(我仍然希望Ctrl-C)捕获字符。除了_getch似乎只为cmd禁用回显,但在cygwin中没有。必须有一种方法可以重定向管道或修改控制台设置。 最佳答案 也许SetConsoleMode(从codeguru偷来的):#include#include#includeintmain(){HANDLEhStdin=GetStdHandle(STD_INPUT_HANDLE);DWORDmode=0;GetConsoleMode(hStdin,&mode);Set

c - 输出数量大于应有的数量 - gcc 编译

我的任务是从一个巨大的字符数组中找到两个五位数的数字中找到最大的产品。你必须通过蛮力来完成。数组中最大的5位数字是99890,所以最大的乘积就是它自身的乘积,即9978012100,但我似乎无法得到那个答案,事实上我得到的答案比我运行时的那个还要大程序。当我更改程序以查找最大的4位数字乘积时,我的程序可以运行,但当我查找5位数字时它就会崩溃。我想知道这些数字是否对我糟糕的IDE或其他东西来说太大了。有人可以在gcc中编译并运行以下代码并告诉我他们得到的答案是什么吗?将不胜感激。#include#include#includeintmain(void){chararray[1001]="

c++ - 如何查看指针映射中的指针是否不为 0

我制作了一张map,我需要在另一个线程中使用该map,所以我制作了一个指向我的map的指针并将其发送到另一个线程。但是,当我想查看映射中的值是否不为NULL(指针)时,我得到了一个错误。这是一个示例代码:#include#include#includeusingnamespacestd;intmain(){inttest=1;maphandle;map*handle2;handle[0]=&test;handle2=&handle;if(*handle2[0]){cout这是我得到的错误:错误C2451:'std::map'类型的条件表达式是非法的在这种情况下,我如何欺骗0指针?

c - 反编译一个c dll以使用pinvoke

你能反编译一个cdll来使用pinvoke或者使用反射器吗?如何获取方法名称和签名? 最佳答案 简单地说,没有简单的方法可以做你想做的事。您可以使用反汇编程序库,例如distorm不过,要反汇编导出入口点周围的代码。有一些启发式方法可以使用,但其中许多仅适用于32位调用约定(__stdcall和__cdecl),尤其是。我个人觉得它的Python绑定(bind)很有用,但是libdasm可以做同样的事情。任何其他具有反汇编功能的工具都会有很大的值(value),例如OllyDbg或ImmunityDebugger。注意:如果您有一个

c++ - 如何使用 C 终止远程计算机上的进程?

平台:Windows语言:C/C++我需要一种方法来终止远程计算机上的进程,它实际上是一个对SERVICE_STOP命令没有响应的远程服务,有人知道我该怎么做吗? 最佳答案 要终止远程机器中的进程,您可以使用Win32_ProcessWMI类和Terminate方法和停止远程服务,您可以使用Win32_Service和StopService方法。这是一个C++示例:#include"stdafx.h"#define_WIN32_DCOM#includeusingnamespacestd;#include#include#pragma

c++ - Windows CreateFileMapping : different file-mapping objects with same backed file

我知道我们可以使用文件映射在两个进程之间共享内容,但这需要相同的文件映射对象。如果每个进程使用自己的文件句柄创建自己的文件映射对象,但每个文件句柄都指向同一个文件,会发生什么情况?谢谢张 最佳答案 来自文档:Creatingafilemappingobjectdoesnotactuallymaptheviewintoaprocessaddressspace.TheMapViewOfFileandMapViewOfFileExfunctionsmapaviewofafileintoaprocessaddressspace.Withon